[INV-BACKEND-031] Создать метод оркестратор
Реализация оркестратора реактивной валидации и активации в сервисе меню
NoteКраткая карточка задачи
- Репозиторий / Компонент:
menu-service(Домен МЕНЮ). - Контракт метода: Внутренний обработчик бизнес-логики активации меню.
- Ссылка на Метод: Спецификация публикации фактов создания готовых блюд
- Статус: Готово к реализации
- Инструкция по шагам:
- На Шаге 3-5: По запросу
GET /listвыполнить изолированный запросSELECT * FROM menu_templatesкPostgreSQL Menu DBи вернуть массив шаблонов комплексных меню на Gateway. - При получении запроса на активацию меню, извлечь из базы состав ингредиентов (массив продуктов и объемов), необходимых для данного
menu_id. - На Шаге 10: Выполнить синхронный gRPC-вызов к
fridge-service, выдав методVerifyStockAvailabilityи передав массив требуемых продуктовmenu_required_itemsи строковый параметрspace_type. - На Шаге 12а-13а: Если gRPC-ответ от холодильника вернул ошибку нехватки остатков для контура
OFFICE, инициировать транзакцию вmenu_db, перевести статус данного пользовательского меню вINACTIVEи выбросить исключение наружу. - На Шаге 14-15: При успешном ответе от холодильника вернуть на Gateway статус
200 OK. Сразу после этого в режиме Fire-and-Forget сформировать и отправить пакет в Kafka-топикbpds.pma.out.process.eventс признакомevent_type: "MENU_CONSUMED". Передатьmenu_id, массивspent_itemsиtrace_id.
- На Шаге 3-5: По запросу